package net.xo68.destiny.core.lock;


import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;

/**
 * 锁信息
 */
@ToString
@Data
public class DistributedLockInfo implements Serializable {

    /**
     * 锁标识
     */
    private String lockKey;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 锁状态
     */
    private DistributedLockStatus lockStatus;
    /**
     * 持有者
     */
    private String lockHold;
    /**
     * 过期时间
     */
    private Date lockExpire;
    /**
     * 周期锁的周期秒数,单位：秒
     */
    private long period;

    /**
     * 是否是周期锁
     * @return
     */
    @JsonIgnore
    public boolean isPeriodLock(){
        return this.period > 0;
    }
}
